home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / icsources.lha / PROGRAMS / COOLPRINT < prev    next >
Encoding:
Text File  |  1990-06-23  |  4.7 KB  |  276 lines

  1.          
  2.      section ax,code_c
  3.     opt c-,d+,w-,o+    
  4.     
  5.     include 'df1:insert/custom registers'
  6.     
  7. cadd=((42*8)*256)/8
  8.     
  9.     move.l #scrolltext,shag
  10.     lea $dff000,a6
  11.     move.w #$87e0,dmacon(a6)
  12.     jsr cop_init
  13.      move.l $6c,oldirq
  14.      move.l #newirq,$6c
  15. mse:
  16.      cmp.b #$f0,$dff006
  17.      bne mse
  18.  
  19. zog:
  20.      btst #6,$bfe001
  21.     bne mse
  22.      move.l oldirq,$6c
  23.      move.l copaddr,a0
  24.      move.l oldcop,(a0)
  25. nolib:    
  26.     
  27.      rts    
  28. newirq:  
  29.     movem.l d0-d7/a0-a6,$75000
  30. shaj1:  cmpi.w #$0000,boh
  31.     bne shaj
  32.     jsr shifty
  33.     move.w #$00ff,boh
  34.     jsr printy
  35.     jsr printy1
  36.     jmp kij
  37. shaj:    subi.w #$0011,boh    
  38.     
  39. kij:    
  40.     move.l #screen+2000,aw1+2
  41.     jsr shifty2
  42.     move.l aw1+2,a3
  43.     adda.l #2000,a3
  44.     move.l a3,aw1+2
  45.     jsr shifty2
  46.     move.l aw1+2,a3
  47.     adda.l #2000,a3
  48.     move.l a3,aw1+2
  49.     jsr shifty2
  50.     
  51.     movem.l $75000,d0-d7/a0-a6
  52.     dc.w $4ef9
  53.     
  54. oldirq: dc.l 0
  55. shag:    dc.l 0
  56. yaz:    dc.b 0
  57.  
  58.     even
  59.  
  60. cop_init:
  61.      lea screen,a0
  62.      move.l a0,d0
  63.      move.w d0,lo1
  64.      swap d0
  65.      move.w d0,hi1
  66.      moveq #$00,d0
  67.      lea grafname,a1
  68.      move.l $4,a6
  69.      jsr -132(A6)
  70.      move.l $4,A6
  71.      jsr -408(a6)
  72.      tst d0
  73.      beq nolib
  74.      move.l d0,grafbase
  75.      move.l d0,a6
  76.      add.l #$32,d0
  77.      move.l d0,a0
  78.      move.l a0,copaddr
  79.      move.l (a0),oldcop
  80.      move.l #newcop,(a0)
  81.      rts
  82.  
  83.     even
  84.       
  85. grafname: dc.b "graphics.library",0
  86. grafbase: dc.l 0
  87. oldcop:   dc.l 0
  88. copaddr:  dc.l 0
  89. countit:      dc.b 0
  90.  
  91.     even
  92.  
  93. newcop:     dc.w $0100,$1200
  94.       dc.w $0102
  95. boh:      dc.w $00ff
  96.      dc.w $0120
  97. sp1l:     dc.w $0000,$0122
  98. sp1h:      dc.w $0000 
  99.      dc.w $0124
  100. sp2l:     dc.w $0000,$0126
  101. sp2h:      dc.w $0000 
  102.      dc.w $0128
  103. sp3l:     dc.w $0000,$012a
  104. sp3h:      dc.w $0000 
  105.      dc.w $012c
  106. sp4l:     dc.w $0000,$012e
  107. sp4h:      dc.w $0000
  108.      dc.w $0130
  109. sp5l:     dc.w $0000,$132
  110. sp5h:      dc.w $0000
  111.  scr:       dc.w $2001,$fffe
  112.       dc.w $00e0
  113.  hi1:     dc.w $0000
  114.      dc.w $00e2
  115.  lo1:     dc.w $0000     
  116.      dc.w $00e4
  117.  hi2:     dc.w $0000
  118.      dc.w $00e6
  119.  lo2:     dc.w $0000 
  120.      dc.w $00e8
  121.  hi3:     dc.w $0000
  122.      dc.w $00ea
  123.  lo3:     dc.w $0000 
  124.      dc.w $00ec
  125.  hi4:     dc.w $0000
  126.      dc.w $00ee
  127.  lo4:     dc.w $0000 
  128.      dc.w $00f0
  129.  hi5:     dc.w $0000
  130.      dc.w $00f2
  131.  lo5:     dc.w $0000
  132.      dc.w $008e,$3491 
  133.      dc.w $0090,$34a1
  134.      dc.w $180,$000,$182,$fff,$184,$fdb,$186,$db9
  135.      dc.w $188,$c97,$18a,$a75,$18c,$853,$18e,$033,$190,$c60
  136.      dc.w $192,$ba5,$194,$962,$196,$530,$198,$db4,$19a,$558
  137.      dc.w $19c,$447,$19e,$336,$1a0,$a40,$1a2,$f44,$1a4,$b00
  138.      dc.w $1a6,$222,$1a8,$333,$1aa,$444,$1ac,$555,$1ae,$666
  139.      dc.w $1b0,$777,$1b2,$888,$1b4,$999,$1b6,$aaa,$1b8,$ccc
  140.      dc.w $1ba,$ddd,$1bc,$eee,$1be,$fff
  141.      dc.w $ffff,$fffe
  142.      
  143.      even
  144.  
  145. screen:
  146.      ds.b 1*cadd
  147.      
  148. chrset:
  149.      incbin 'df1:graphics/64.chrset.raw'
  150.      
  151. printy:
  152.      move.l shag,a2
  153.      move.b (a2)+,yaz
  154.      move.l a2,shag
  155.      cmpi.b #0,yaz
  156.      bne stag
  157.      move.l #scrolltext,shag
  158.      rts
  159. stag:     
  160.      move.l #Ascii,a3
  161.      move.l #pos,a4
  162.      move.b (a3)+,d3
  163.      move.w (a4),(a4)
  164. cmpr:
  165.      cmp.b yaz,d3
  166.      beq printit
  167.      move.b (a3)+,d3
  168.      move.w (a4),(a4)+
  169.      jmp cmpr
  170.      rts
  171.      
  172. printit:
  173.      move.l #chrset,a5
  174.      adda.w (a4),a5
  175.      move.l a5,as1+2
  176. as1:     move.b chrset,screen+38
  177.     
  178. loop:     move.l as1+2,a3
  179.      adda.l #40,a3
  180.      move.l a3,as1+2
  181.      move.l as1+6,a3
  182.      adda.l #40,a3
  183.      move.l a3,as1+6
  184.      addi.b #1,countit
  185.      cmpi.b #8,countit
  186.      bne as1
  187.      move.b #0,countit
  188.      move.l #chrset,as1+2
  189.      move.l #screen+38,as1+6
  190.      rts
  191.      
  192. printy1:
  193.      move.l shag,a2
  194.      move.b (a2)+,yaz
  195.      move.l a2,shag
  196.      cmpi.b #0,yaz
  197.      bne juh
  198.      move.l #scrolltext,shag
  199.      rts
  200. juh:
  201.      move.l #Ascii,a3
  202.      move.l #pos,a4
  203.      move.b (a3)+,d3
  204.      move.w (a4),(a4)
  205. cmpr1:
  206.      cmp.b yaz,d3
  207.      beq printit1
  208.      move.b (a3)+,d3
  209.      move.w (a4),(a4)+
  210.      jmp cmpr1
  211.      rts
  212.      
  213. printit1:
  214.      move.l #chrset,a5
  215.      adda.w (a4),a5
  216.      move.l a5,as11+2
  217. as11:     move.b chrset,screen+39
  218.     
  219. loop1:     move.l as11+2,a3
  220.      adda.l #40,a3
  221.      move.l a3,as11+2
  222.      move.l as11+6,a3
  223.      adda.l #40,a3
  224.      move.l a3,as11+6
  225.      addi.b #1,countit
  226.      cmpi.b #8,countit
  227.      bne as11
  228.      move.b #0,countit
  229.      move.l #chrset,as11+2
  230.      move.l #screen+39,as11+6
  231.      rts
  232.      
  233.      
  234. Ascii:
  235.      dc.b ' 1234567890.-'
  236.      dc.b 'ABCDEFGHIJKLMNOPQRSTUVWXYZ!?'
  237.      dc.b 0
  238.      
  239. pos:
  240.      dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12
  241.      dc.w 320,321,322,323,324,325,326,327,328,329,330
  242.      dc.w 331,332,333,334,335,336,337,338,339,340,341
  243.      dc.w 342,343,344,345,346,347
  244.      
  245. scrolltext:
  246.  
  247.      dc.b 'THIS IS MEANINGFUL TEXT. DUDE GREETS GO TO MARTIN.'
  248.      dc.b 'BOLLGROX TO PETE EDLEY GREASER FUCKIN TWAT SHIT.'
  249.      dc.b '1234567890-!?                            '
  250.      dc.b 0
  251. shifty:
  252.      lea $dff000,a6
  253.      move.l #-1,bltafwm(a6)
  254.      move.w #$09f0,bltcon0(a6)
  255.      clr.w bltcon1(a6)
  256.      clr.w bltamod(a6)
  257.      move.w #40-38,bltdmod(a6)              
  258.      move.w #40-38,bltamod(a6)             
  259.      move.l #screen,bltdpt(a6)       
  260.      move.l #screen+2,bltapt(a6)            
  261.      move.w #%0000001000010011,bltsize(a6)     
  262.      rts
  263.      
  264. shifty2:
  265.      lea $dff000,a6
  266.      move.l #-1,bltafwm(a6)
  267.      move.w #$09f0,bltcon0(a6)
  268.      clr.w bltcon1(a6)
  269.      clr.w bltamod(a6)
  270.      move.w #40-38,bltdmod(a6)              
  271.      move.w #40-38,bltamod(a6)             
  272. aw1:     move.l #screen+2000,bltdpt(a6)       
  273.      move.l #screen,bltapt(a6)            
  274.      move.w #%0000001000010011,bltsize(a6)     
  275.      rts
  276.